import { searchParamsTopCache } from "@/lib/techsales-rfq/validations" import { getTechSalesTopRfqsWithJoin } from "@/lib/techsales-rfq/service" import { getValidFilters } from "@/lib/data-table" import { Shell } from "@/components/shell" import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" import { RFQListTable } from "@/lib/techsales-rfq/table/rfq-table" import { type SearchParams } from "@/types/table" import * as React from "react" import { InformationButton } from "@/components/information/information-button" import { useTranslation } from "@/i18n" interface HullRfqPageProps { params: Promise<{lng: string}> searchParams: Promise } export default async function HullRfqPage(props: HullRfqPageProps) { // searchParams를 await하여 resolve const searchParams = await props.searchParams const {lng} = await props.params const {t} = await useTranslation(lng, 'menu') // 해양 TOP용 파라미터 파싱 const search = searchParamsTopCache.parse(searchParams); const validFilters = getValidFilters(search.filters); // 기술영업 해양 TOP RFQ 데이터를 Promise.all로 감싸서 전달 const promises = Promise.all([ getTechSalesTopRfqsWithJoin({ ...search, // 모든 파라미터 전달 (page, perPage, sort, basicFilters, filters 등) filters: validFilters, // 고급 필터를 명시적으로 오버라이드 (파싱된 버전) }) ]) return ( {/* fullscreen variant 사용 */} {/* 고정 헤더 영역 */}

{t('menu.tech_sales.budgetary_top')}

{/* 테이블 영역 - 남은 공간 모두 차지 */}
} >
) }